1. Field of the Invention
This invention relates generally to distributed software execution, and more particularly to a remote execution model that provides launch synchronization and remote application control.
2. Description of the Related Art
As the use of software in performing daily tasks is increasing rapidly, assessing software reliability through software testing has become an imperative stage in software development cycle. As is well known, software testing is used to find and eliminate defects (i.e., bugs) in software, which if undetected, can cause the software to operate improperly. In general, a stand-alone computer or a network of computer resources can perform software testing. When a stand-alone computer system is used to perform the software testing, the computer system is programmed to run a test selected by the software user. Comparatively, if a network of computer resources is used, the user is responsible for manually adding and deleting the computer resources to the network, programming the master computer system and the server, initiating the running of a user-selected test, and running the test on the group of dedicated computer systems coupled to the server. However, distributed testing of this sort presents launch and control problems, as described next with reference to FIG. 1.
FIG. 1 is a block diagram showing a prior art distributed test configuration 100. The distributed test configuration 100 includes a plurality of test systems 102a–102c, each executing a test application 104a–104c. During launch and subsequent execution, the distributed test configuration 100 cannot provide any control related to the launch and execution. That is, the user cannot control the launch order and execution of the test applications 104a–104c using the prior art distributed test configuration 100. As a result, errors can occur when the test applications depend on each other for proper execution.
For example, during a particular test, test application B 104b may depend on test application A 104a. In particular, test application A 104a may need to connect to test application B 104b to perform a particular test. However, the prior art distributed test configuration 100 generally launches all the application simultaneously, or close to simultaneously. If test system A 102a processes test application A 104a faster than test system B 102b processes test application B 104b, test application A 104a may attempt to establish communication before test application B 104b is ready to establish communication. In such a situation, the communication attempt will fail, and as a result, the test will fail.
Failure can also occur when an application depends on the output of another application. For example, test application C 104c may depend on the output of test application A 104a for proper execution. If test application C 104c attempts to use the output of test application A 104a before test application A 104a has generated the requested output, test application C 104c can fail.
In view of the foregoing, there is a need for a remote execution model for distributed application launch and control. The model should provide a mechanism for remote applications to communicate control and launch information, allowing enhanced operation of the distributed system. In addition, the remote execution model should be extendable to provide increased flexibility in deployment and operation.